home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / SRCBDTO.PAK / BASE.CPP next >
Text File  |  1997-05-06  |  4KB  |  205 lines

  1. //-----------------------------------------------------------------------------
  2. // Visual Database Tools
  3. // Copyright (c) 1996 by Borland International, All Rights Reserved
  4. //
  5. // base.cpp
  6. // TBDTObject and TBDTComponent wrapper classes
  7. //-----------------------------------------------------------------------------
  8.  
  9. #include <vdbt\bdto.h>
  10.  
  11. #pragma hdrstop
  12.  
  13. #include "wrapit.h"
  14. #include "misc.h"
  15.  
  16. //-----------------------------------------------------------------------------
  17.  
  18. void TBDTObject::SetTBDTObject( PIUnknown p )
  19. {
  20.     bdtobject = 0;
  21.     if (p)
  22.         p->QueryInterface( IID_ITBDTObject, (void**) &bdtobject );
  23. }
  24.  
  25. void TBDTObject::ClearTBDTObject( void )
  26. {
  27.     if (bdtobject)
  28.     {
  29.         bdtobject->Release();
  30.         bdtobject = 0;
  31.     }
  32. }
  33.  
  34. TBDTObject::TBDTObject( void )
  35. {
  36.     SetTBDTObject( 0 );
  37. }
  38.  
  39. TBDTObject::TBDTObject( PITBDTObject p )
  40. {
  41.     SetTBDTObject( p );
  42. }
  43.  
  44. TBDTObject::TBDTObject( const TBDTObject& p )
  45. {
  46.     SetTBDTObject( p.bdtobject );
  47. }
  48.  
  49. TBDTObject::TBDTObject( PTBDTObject p )
  50. {
  51.     SetTBDTObject( p ? p->bdtobject : 0 );
  52. }
  53.  
  54. TBDTObject& TBDTObject::operator=( PITBDTObject p )
  55. {
  56.     ClearTBDTObject();
  57.     SetTBDTObject( p );
  58.     return *this;
  59. }
  60.  
  61. TBDTObject& TBDTObject::operator=( const TBDTObject& p )
  62. {
  63.     if (this != &p)
  64.     {
  65.         ClearTBDTObject();
  66.         SetTBDTObject( p.bdtobject );
  67.     }
  68.     return *this;
  69. }
  70.  
  71. int TBDTObject::operator==( const TBDTObject& p ) const
  72. {
  73.     if (this == &p)
  74.         return true;
  75.     if (bdtobject == p.bdtobject)
  76.         return true;
  77.     return false;
  78. }
  79.  
  80. int TBDTObject::operator!=( const TBDTObject& p ) const
  81. {
  82.     return ! operator==(p);
  83. }
  84.  
  85. TBDTObject::~TBDTObject()
  86. {
  87.     ClearTBDTObject();
  88. }
  89.  
  90. void TBDTObject::SetPIT( PIUnknown p )
  91. {
  92.     ClearTBDTObject();
  93.     SetTBDTObject( p );
  94. }
  95.  
  96. void TBDTObject::Detach( void )
  97. {
  98.     if (bdtobject)
  99.         bdtobject->Detach();
  100. }
  101.  
  102. void TBDTObject::Assign( TBDTObject& source )
  103. {
  104.     if (bdtobject)
  105.         bdtobject->Assign( source.bdtobject );
  106. }
  107.  
  108. //-----------------------------------------------------------------------------
  109.  
  110. void TBDTComponent::SetTBDTComponent( PIUnknown p )
  111. {
  112.     bdtcomponent = 0;
  113.     if (p)
  114.         p->QueryInterface( IID_ITBDTComponent, (void**) &bdtcomponent );
  115. }
  116.  
  117. void TBDTComponent::ClearTBDTComponent( void )
  118. {
  119.     if (bdtcomponent)
  120.     {
  121.         bdtcomponent->Release();
  122.         bdtcomponent = 0;
  123.     }
  124. }
  125.  
  126. TBDTComponent::TBDTComponent( void ) : TBDTObject()
  127. {
  128.     SetTBDTComponent( 0 );
  129. }
  130.  
  131. TBDTComponent::TBDTComponent( PITBDTComponent p ) : TBDTObject( p )
  132. {
  133.     SetTBDTComponent( p );
  134. }
  135.  
  136. TBDTComponent::TBDTComponent( const TBDTComponent& p ) : TBDTObject( p )
  137. {
  138.     SetTBDTComponent( p.bdtcomponent );
  139. }
  140.  
  141. TBDTComponent::TBDTComponent( PTBDTComponent p ) : TBDTObject( p )
  142. {
  143.     SetTBDTComponent( p ? p->bdtcomponent : 0 );
  144. }
  145.  
  146. TBDTComponent& TBDTComponent::operator=( PITBDTComponent p )
  147. {
  148.     TBDTObject::operator=(p);
  149.     ClearTBDTComponent();
  150.     SetTBDTComponent( p );
  151.     return *this;
  152. }
  153.  
  154. TBDTComponent& TBDTComponent::operator=( const TBDTComponent& p )
  155. {
  156.     if (this != &p)
  157.     {
  158.         TBDTObject::operator=(p);
  159.         ClearTBDTComponent();
  160.         SetTBDTComponent( p.bdtcomponent );
  161.     }
  162.     return *this;
  163. }
  164.  
  165. int TBDTComponent::operator==( const TBDTComponent& p ) const
  166. {
  167.     if (this == &p)
  168.         return true;
  169.     if (bdtcomponent == p.bdtcomponent)
  170.         return true;
  171.     return false;
  172. }
  173.  
  174. int TBDTComponent::operator!=( const TBDTComponent& p ) const
  175. {
  176.     return ! operator==(p);
  177. }
  178.  
  179. TBDTComponent::~TBDTComponent()
  180. {
  181.     ClearTBDTComponent();
  182. }
  183.  
  184. void TBDTComponent::SetPIT( PIUnknown p )
  185. {
  186.     ClearTBDTComponent();
  187.     SetTBDTComponent( p );
  188.     TBDTObject::SetPIT( p );
  189. }
  190.  
  191. DEFINE_BDTO_OBJECTPROP_RW( TBDTComponent, string, Name );
  192.  
  193. void TBDTComponent::GetName( string& s )
  194. {
  195.     if (bdtcomponent)
  196.         AnyString( bdtcomponent->get_Name() ).GetString( s );
  197. }
  198.  
  199. void TBDTComponent::SetName( const string& n )
  200. {
  201.     if (bdtcomponent)
  202.         bdtcomponent->put_Name( AnyString(n).GetPITAnyString() );
  203. }
  204.  
  205.